<?xml version="1.0" encoding="UTF-8" ?>
<class name="DirectionalLight" inherits="Light" category="Core" version="3.1">
	<brief_description>
		Directional light from a distance, as from the Sun.
	</brief_description>
	<description>
		A directional light is a type of [Light] node that models an infinite number of parallel rays covering the entire scene. It is used for lights with strong intensity that are located far away from the scene to model sunlight or moonlight. The worldspace location of the DirectionalLight transform (origin) is ignored. Only the basis is used do determine light direction.
	</description>
	<tutorials>
		<link>https://docs.godotengine.org/en/latest/tutorials/3d/lights_and_shadows.html</link>
	</tutorials>
	<demos>
	</demos>
	<methods>
	</methods>
	<members>
		<member name="directional_shadow_bias_split_scale" type="float" setter="set_param" getter="get_param">
			Amount of extra bias for shadow splits that are far away. If self shadowing occurs only on the splits far away, this value can fix them.
		</member>
		<member name="directional_shadow_blend_splits" type="bool" setter="set_blend_splits" getter="is_blend_splits_enabled">
			If [code]true[/code], shadow detail is sacrificed in exchange for smoother transitions between splits. Default value:[code]false[/code].
		</member>
		<member name="directional_shadow_depth_range" type="int" setter="set_shadow_depth_range" getter="get_shadow_depth_range" enum="DirectionalLight.ShadowDepthRange">
			Optimizes shadow rendering for detail versus movement. See [enum ShadowDepthRange].
		</member>
		<member name="directional_shadow_max_distance" type="float" setter="set_param" getter="get_param">
			The maximum distance for shadow splits.
		</member>
		<member name="directional_shadow_mode" type="int" setter="set_shadow_mode" getter="get_shadow_mode" enum="DirectionalLight.ShadowMode">
			The light's shadow rendering algorithm. See [enum ShadowMode].
		</member>
		<member name="directional_shadow_normal_bias" type="float" setter="set_param" getter="get_param">
			Can be used to fix special cases of self shadowing when objects are perpendicular to the light.
		</member>
		<member name="directional_shadow_split_1" type="float" setter="set_param" getter="get_param">
			The distance from camera to shadow split 1. Relative to [member directional_shadow_max_distance]. Only used in [enum directional_shadow_mode] SHADOW_PARALLEL_*_SPLITS.
		</member>
		<member name="directional_shadow_split_2" type="float" setter="set_param" getter="get_param">
			The distance from shadow split 1 to split 2. Relative to [member directional_shadow_max_distance]. Only used in [enum directional_shadow_mode] SHADOW_PARALLEL_*_SPLITS.
		</member>
		<member name="directional_shadow_split_3" type="float" setter="set_param" getter="get_param">
			The distance from shadow split 2 to split 3. Relative to [member directional_shadow_max_distance]. Only used in [enum directional_shadow_mode] SHADOW_PARALLEL_4_SPLITS.
		</member>
	</members>
	<constants>
		<constant name="SHADOW_ORTHOGONAL" value="0" enum="ShadowMode">
			Renders the entire scene's shadow map from an orthogonal point of view. May result in blockier shadows on close objects.
		</constant>
		<constant name="SHADOW_PARALLEL_2_SPLITS" value="1" enum="ShadowMode">
			Splits the view frustum in 2 areas, each with its own shadow map.
		</constant>
		<constant name="SHADOW_PARALLEL_4_SPLITS" value="2" enum="ShadowMode">
			Splits the view frustum in 4 areas, each with its own shadow map.
		</constant>
		<constant name="SHADOW_DEPTH_RANGE_STABLE" value="0" enum="ShadowDepthRange">
			Keeps the shadow stable when the camera moves, at the cost of lower effective shadow resolution. Default value.
		</constant>
		<constant name="SHADOW_DEPTH_RANGE_OPTIMIZED" value="1" enum="ShadowDepthRange">
			Tries to achieve maximum shadow resolution. May result in saw effect on shadow edges.
		</constant>
	</constants>
</class>
